package com.example.smartagrisys.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 投诉实体类
 */
@Data
@TableName("complaint")
public class Complaint {
    
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    
    /**
     * 买家ID
     */
    @TableField("buyer_id")
    private Long buyerId;
    
    /**
     * 卖家/农户ID
     */
    @TableField("seller_id")
    private Long sellerId;
    
    /**
     * 订单ID
     */
    @TableField("order_id")
    private Long orderId;
    
    /**
     * 订单编号
     */
    @TableField("order_number")
    private String orderNumber;
    
    /**
     * 商品名称
     */
    @TableField("product_name")
    private String productName;
    
    /**
     * 投诉标题
     */
    @TableField("title")
    private String title;
    
    /**
     * 投诉类型(quality:商品质量问题, delivery:物流配送问题, service:售后服务问题, description:商品描述不符, other:其他问题)
     */
    @TableField("type")
    private String type;
    
    /**
     * 投诉内容
     */
    @TableField("content")
    private String content;
    
    /**
     * 投诉图片，JSON数组格式
     */
    @TableField("images")
    private String images;
    
    /**
     * 联系电话
     */
    @TableField("phone")
    private String phone;
    
    /**
     * 投诉状态(pending:待处理, processing:处理中, resolved:已解决, closed:已关闭)
     */
    @TableField("status")
    private String status;
    
    /**
     * 商家回复内容
     */
    @TableField("reply_content")
    private String replyContent;
    
    /**
     * 商家回复时间
     */
    @TableField("reply_time")
    private LocalDateTime replyTime;
    
    /**
     * 解决方案
     */
    @TableField("solution")
    private String solution;
    
    /**
     * 解决时间
     */
    @TableField("resolve_time")
    private LocalDateTime resolveTime;
    
    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
    
    /**
     * 是否删除
     */
    @TableField("deleted")
    private Boolean deleted;
    
    /**
     * 非数据库字段 - 买家姓名
     */
    @TableField(exist = false)
    private String buyerName;
    
    /**
     * 非数据库字段 - 卖家/农户姓名
     */
    @TableField(exist = false)
    private String sellerName;
    
    /**
     * 非数据库字段 - 图片列表
     */
    @TableField(exist = false)
    private List<String> imageList;
} 